Systems which provide for the modification of visual characteristics of digital objects are well known. As used herein, the terms "paint system" and "paint" are intended to comprise any system or method by which a user may modify the visual characteristics of a digital 3D object and can include, without limitation, modifying existing textures, or applying new textures, moving (translating) textures, etc.
Digital paint systems range from the ubiquitous two dimensional Paintbrush program in Microsoft Windows 3.1 to high-end 3D digital paint systems such as SoftImage 3D which includes a 3D paint module, amongst others. 3D digital paint systems allow an artist to paint or otherwise modify the visual characteristics of a 3D object, which has been previously defined, to obtain a 3D object which has a desired visual appearance when it is rendered.
3D paint systems may apply a single color to a 3D object to, for example, paint a portion of a surface of the object a solid color. When rendered, even though a single solid color has been applied to the object, the colors on the displayed 3D object can vary due to changes in lighting, surface geometry of the object, etc. In a more interesting case, the 3D paint system may provide more advanced modification techniques such as the ability to apply or modify textures on the 3D object. For example, a texture which replicates a wood grain could be applied to one or more surfaces of the 3D object so that the rendered object appears to have been made of wood.
Textures can comprise a wide range of visual characteristics including photographic or other images, patterns such as woodgrain or marble, or effects which have no counterpart in the physical world such as reflection or refraction maps. Further, multiple textures can be composited onto the 3D object and the paint system can provide for the user to paint onto a texture which has been applied to the object. In fact, a texture can comprise a solid, single color and thus the above-described application of a single solid color to a 3D object is a trivial case of the application of a texture.
A discussion of the application of textures to 3D objects is given in "Direct WYSIWYG Painting & Texturing on 3D Shapes", Hanrahan & Haeberli, ACM Computer Graphics, Volume 24, Number 4, August 1990, pp.215-223, the contents of which are incorporated herein by reference.
To provide the desired visual feedback to the artist during the process of applying or modifying a texture, it is desired that the display of the 3D object be updated, substantially in real time, as the modification operation is performed. However, due to the computational complexity involved in rendering 3D objects, which can include calculating the effects of the object geometry, lighting, the user's point of view and a variety of composited textures, prior art 3D systems have typically required special purpose computer systems or additional hardware such as expensive graphics accelerators in order to provide an acceptable response time to the user, i.e.--substantially real time rendering and display of the result of the modification operation.
Previous attempts have been made to mitigate the requirement for special purpose hardware. For example, somewhat improved techniques of texture application are discussed in "Efficient Techniques for Interactive Texture Placement", Litwinowicz and Miller, ACM Computer Graphics Proceedings, Annual Conference Series, 1994, pp.119-122, the contents of which are incorporated herein by reference. However, even with these techniques, unless special equipment is employed, the response time of the 3D paint system is slower than is desired.